package main

import (
	"os"
	"os/signal"
	"syscall"
	"time"
)

func main() {
	//第一种，死循环
	for {
		time.Sleep(time.Second)
	}

	//第二种通过系统信号
	//存储系统信号的channel
	ch := make(chan os.Signal)
	//监听指定信号 如：ctrl+c kill 一旦有信号就发送到ch中
	signal.Notify(ch, os.Interrupt, os.Kill, syscall.SIGTERM, syscall.SIGQUIT)
	//阻塞直到有信号传入
	<-ch

	//第三种通过通道协作或者waitgroup，这种需要代码逻辑配合
}
